Customizing search results in a multi-content source environment

ABSTRACT

Described herein are various embodiments for customizing search results in a multi-content source environment. An embodiment operates by receiving input corresponding to a search from a user and retrieving a content history indicating which content was previously viewed by the user. It is determined that the content of the content history is organized into one or more preconfigured categories. A new category of content is generated based on the content history for the user. The content of the content history for user is arranged based on both the new category and at least a subset of the one or more preconfigured categories. The arranged content is displayed in a manner customized to the user.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No.16/686,966 titled “Audio Search Results In A Multi-Content SourceEnvironment,” filed Nov. 18, 2019 which claims the benefit of U.S.Provisional Patent Application No. 62/779,698 titled “Audio SearchResults In A Multi-Content Source Environment,” filed Dec. 14, 2018,both of which are herein incorporated by reference in their entireties.

BACKGROUND Field

This disclosure is generally directed to searching digital content in anenvironment that has multiple content sources.

Background

On demand access to content (such as movies, TV programs, news, music,games, live action sports, audio books, etc.) has become ubiquitous. Amultitude of content sources exist, such as ROKU, HBO, NETFLIX, HULU,ESPN, CNN, ABC, NBC, CBS, YOUTUBE, SPOTIFY, PANDORA, SMULE, SLING, etc.,to name just some examples, and these content sources individually andcollectively offer to users an immense amount of content.

Search tools have been developed to help users find content of interestfrom these content sources. But to date, such search tools provide onlylimited value.

For example, most search tools are capable of performing only textsearches, and they are limited to searching only a single contentsource. Other search tools permit searching over multiple contentsources. However, often, the search results are displayed in a listformat that is too busy to be useful.

Also, the user's context may not be preserved when searching multiplecontent sources. For example, assume the user is in HULU when she issuesa search request. Often with existing search tools, the current context(that is, HULU) is exited when the search is performed and the searchresults displayed. Such change of context can be disruptive to the userexperience.

Voice searches (that is, searches based on verbal commands spoken byusers) are becoming more common. Usually, voice searches are treatedjust like text searches. As a result, audio searches suffer from thesame limitations as just described above.

Also, typically each content source must develop its own engine forprocessing voice searches. This may be a technical challenge for somecontent sources. Also, having so many engines inevitably leads todifferent and inconsistent interfaces, which may detract from the userexperience.

SUMMARY

Provided herein are system, apparatus, article of manufacture, methodand/or computer program product embodiments, and/or combinations andsub-combinations thereof, for processing voices searches over multiplecontent sources.

Some embodiments operate by receiving audio input corresponding to avoice search from a user; performing automatic speech recognition of theaudio input to obtain search parameters; executing a search having thesearch parameters over the multiple content sources to obtain searchresults; and displaying search results in categories in a mannercustomized to the user.

The multiple content sources may include a principal content source, anactive partner content source, and at least one non-active partnercontent source, where the active partner content source represents anactive context. In some embodiments, the media device performs thereceiving, performing, executing and displaying without exiting theactive content.

In some embodiments, the audio input is received by: receiving anindication that the user pressed a voice button on a remote control; andmonitoring a microphone in the remote control to receive the audioinput.

In some embodiments, the search results are displayed by: selectingfirst categories based on preferences and history of the user;generating new second categories based on the preferences and history ofthe user; ordering items in the first and second categories based on thepreferences and history of the user; and ordering the first and secondcategories for display based on the preferences and history of the user.

BRIEF DESCRIPTION OF THE FIGURES

The accompanying drawings are incorporated herein and form a part of thespecification.

FIG. 1 illustrates an example user interface showing search resultspresented in a list, according to some embodiments.

FIG. 2 illustrates an example user interface showing search resultsorganized and presented in categories, according to some embodiments.

FIG. 3 illustrates a flowchart for performing a text search of a singlecontent source, according to some embodiments.

FIG. 4 illustrates a flowchart for performing a voice search of multiplecontent sources, according to some embodiments.

FIG. 5 illustrates a block diagram of a multimedia environment,according to some embodiments.

FIG. 6 illustrates a block diagram of a media device in the multimediaenvironment of FIG. 5 , according to some embodiments.

FIG. 7 illustrates a block diagram of a display device in the multimediaenvironment of FIG. 5 , according to some embodiments.

FIGS. 8 and 9 illustrate example user interfaces showing search resultsof multiple content sources organized and presented in categories,according to some embodiments.

FIG. 10 illustrates a flowchart for performing a voice search ofmultiple content sources, and displaying the search results using theuser interfaces of FIGS. 8 and 9 , according to some embodiments.

FIG. 11 illustrates an example computer system useful for implementingvarious embodiments.

In the drawings, like reference numbers generally indicate identical orsimilar elements. Additionally, generally, the left-most digit(s) of areference number identifies the drawing in which the reference numberfirst appears.

DETAILED DESCRIPTION

Provided herein are system, apparatus, article of manufacture, methodand/or computer program product embodiments, and/or combinations andsub-combinations thereof, for processing searches of digital contentover multiple content sources. In some embodiments, the searches arevoice searches (that is, searches based on audible verbal commandsspoken by users), as opposed to text searches (that is, searches basedon text provided by users, via a keyboard for example). The searchresults are organized into categories, and items within the categoriesare ordered in a manner customized to the user who initiated the search.Also, the categories themselves are ordered and displayed in a mannercustomized to the user. In this way, the search results are presented tothe user in a manner that facilitates the user being able to locatecontent of interest.

FIG. 5 illustrates a block diagram of a multimedia environment 502,according to some embodiments. In a non-limiting example, multimediaenvironment 502 is directed to playing content such as movies, TV shows,news, games, audio books, and music, to name just some examples.

The multimedia environment 502 may include a plurality of media systems504. Each media system 504 may be used by one or more users 503. Themedia system 504 could be user 503's entertainment system, for example,and could be located in the user 503's home, workplace, vehicle, campsite, or any other location.

Each media system 504 may include one or more media devices 506 eachcoupled to one or more display devices 508. Media device 506 may be anycombination of a streaming media device, over-the-air (OTA) contenttuner, DVD/Blu-Ray device, audio/video playback device, cable box,satellite box, and/or digital video recording (DVR) device, to name justa few examples. Display device 508 may be a monitor, television,computer, smart phone, tablet, wearable (such as a watch), appliance,internet-of-things (IoT) device, and/or projector, to name just a fewexamples. In some embodiments, media device 506 can be a part of,integrated with, operatively coupled to, and/or connected to itsrespective display device 508.

Each media system 504 may include one or more remote controls 510. Theuser 503 can use the remote control 510 to control the media device 506and/or display device 508. The remote control 510 can be a smart phone,tablet, wearable, digital assistant, or any other remote control, andcan include voice responsive devices.

The remote control 510 may include a keypad 512 for receiving commandsand text input from users 503. The remote control 510 may also include amicrophone 514 for receiving audible or voice input spoken by users 503.

In some embodiments, the remote control 510 may include a voice button516. By pressing the voice button 516, the user 503 may indicate to theremote control 510 that he wishes to speak a voice command, such as avoice search. Upon detecting that the voice button 516 has been pressed,the remote control 510 may listen for audible voice input by using themicrophone 514.

The media device 506 may be configured to communicate with network 518.In various embodiments, the network 518 can include, without limitation,wired and/or wireless intranet, extranet, Internet, cellular, Bluetoothand/or any other short range, long range, local, regional, globalcommunications network, as well as any combination thereof.

The multimedia environment 502 may include one or more content servers522 (also called content providers or sources 522). Each content source522 may be configured to communicate with network 518.

Each content source 522 may store content 524 and metadata 526. Content524 may include any combination of music, videos, movies, TV programs,multimedia, images, still pictures, text, graphics, gaming applications,advertisements, programming content, public service content, governmentcontent, local community content, software, and/or any other content ordata objects in electronic form.

Metadata 526 may represent data about content 524. For example, metadata526 may include associated or ancillary information indicating orrelated to writer, director, producer, composer, artist, actor, summary,chapters, production, history, year, trailers, alternate versions,related content, applications, and/or any other information pertainingor relating to the content 524. Metadata 526 may also or alternativelyinclude links to any such information pertaining or relating to thecontent 524. Metadata 526 may also or alternatively include one or moreindexes of content 524, such as but not limited to a trick mode index.

In some embodiments, one or more of the content sources 522A may beassociated with a principal entity, and may be herein called principalcontent sources 522A. Other content sources 522B and 522C may beassociated with partner entities, and may be herein called partnercontent sources 522B, 522C. It should be noted that, while FIG. 5 showstwo partner content sources 522B, 522C, in practice the multimediaenvironment 502 may have any number of partner content sources 522B,522C.

The principle content source 522A may provide content 524 from itselfand/or partner content sources 522B, 522C to users 503 via media devices506. Non-limiting examples of the principal content source 522A mayinclude ROKU, APPLE TV, AMAZON FIRE TV, and GOOGLE CHROMECAST, to namejust some examples. Non-limiting examples of partner content sources522B, 522C may include HBO, NETFLIX, HULU, ESPN, CNN, ABC, NBC, CBS,SLING, AMAZON, SPOTIFY, PANDORA, SMULE and YOUTUBE, to name just someexamples.

The multimedia environment 502 may include a server 530 that stores auser preferences/history database 532. The user preferences/historydatabase 532 may include information regarding a given user 503'scontent viewing history and preferences, such as movies and TV programsthe user 503 has watched, whether the user 503 watches news or sports,whether the user 503 watches action, drama or comedies, the actors theuser watches the most, and whether and how often the user 503 streamsmusic, audible books, computer games, etc. Other examples of userpreferences and history will be apparent to persons skilled in therelevant art(s).

The user preferences/history database 532 may be populated by mediadevices 506 located throughout the world, as these media devices 506monitor the actions of their respective users 503 while using the mediadevice 506 to select and consume content 524.

FIG. 6 illustrates a block diagram of an example media device 506,according to some embodiments. Media device 506 may include one or moreaudio decoders 602 and one or more video decoders 604.

Each audio decoder 602 may be configured to decode audio of one or moreaudio formats, such as but not limited to AAC, HE-AAC, AC3 (DolbyDigital), EAC3 (Dolby Digital Plus), WMA, WAV, PCM, MP3, OGG GSM, FLAC,AU, AIFF, and/or VOX, to name just some examples.

Similarly, each video decoder 604 may be configured to decode video ofone or more video formats, such as but not limited to MP4 (mp4, m4a,m4v, f4v, f4a, m4b, m4r, f4b, mov), 3GP (3gp, 3gp2, 3g2, 3gpp, 3gpp2),OGG (ogg, oga, ogv, ogx), WMV (wmv, wma, asf), WEBM, FLV, AVI,QuickTime, HDV, MXF (OPla, OP-Atom), MPEG-TS, MPEG-2 PS, MPEG-2 TS, WAV,Broadcast WAV, LXF, GXF, and/or VOB, to name just some examples. Eachvideo decoder 604 may include one or more video codecs, such as but notlimited to H.263, H.264, HEV, MPEG1, MPEG2, MPEG-TS, MPEG-4, Theora,3GP, DV, DVCPRO, DVCPRO, DVCProHD, IMX, XDCAM HD, XDCAM HD422, and/orXDCAM EX, to name just some examples.

The media device 506 may also include a streaming module 606. Thestreaming module 606 may operate to obtain content 524 (that wasrequested by user 503) from a content source 522 via the network 518.The media device 506 may transmit the received content 524 to itsassociated display device 508 for presentation to the user 503 whorequested the content 524.

The media device 506 may include a query & retrieval module 608. Thequery & retrieval module 608 may process text searches and voicesearches for content received from users 503. The query & retrievalmodule 608 may store user preferences/history 614. Such userpreferences/history 614 may include information that pertains to users503 who use the media device 506, that was downloaded from the server530 and/or obtained by the media device 506 while monitoring the actionof users 503 while using the media device 506 to select and consumecontent 524. For example, the media device 506 may keep track of theviewing history of the user 503. The media device 506 may periodicallyupload the user preferences/history 614 to the server 530 for storage inthe user preferences/history database 532.

The media device 506 may include an automated speech recognition (ASR)module 610. The ASR module 610 may use any well-known ASR hardware,part, apparatus, method, approach, and/or technology to recognizeaudible voice input spoken by users 503 and received by the microphone514 of the remote control 510 (it is noted that this voice input couldalternatively be received in other ways, such as via a microphone—notshown—in the media device 506).

FIG. 7 illustrates an example display device 508. The display device 508may display a graphical user interface (GUI) 702. Example GUIs 702 aredescribed below.

For example, FIG. 1 illustrates an example user interface 702A whereuser 503 has entered a text search 104 of “spo”. The user 503 may haveentered this text search 104 using an on-screen keypad 105 or the remotecontrol 510. In the example of FIG. 1 , the search results 106 aredisplayed in a list format. But displaying search results 106 in a listmay not be helpful. This is particularly true when the list is longand/or the search results 106 include different types of content, suchas movies, TV shows, music, apps, etc., which is the case in FIG. 1 .The example user interface 702A may attempt to rectify this problem byusing icons 108 to indicate the type of the content. For example, a TVicon 110 may be used to indicate a TV show, and a film icon 112 may beused to indicate a movie. But such icons may be hard for the user 101 tosee much less discern, and may exacerbate the busyness of the list.

FIG. 2 illustrates an alternative example user interface 702B where theuser 503 has entered a text search 204 of “sta”, according to someembodiments. The user interface 702B in FIG. 2 is an improvement on theuser interface 702A of FIG. 1 . For example, in user interface 702B ofFIG. 2 , the search results are organized into categories 210, such asTV and movie results 210A, cast and crew results 210B, clips andtrailers 210C, etc. Using categories 210 makes it much easier for theuser 503 to navigate through and find content of interest.

Also, in some embodiments, items in a given category 210 are ordered ina manner customized to the user 503 who initiated the search. Forexample, it may be known from the user 503's preferences and/or history614 that the user 503 prefers science fiction movies the most, followedby action movies. Accordingly, the TV and movie results category 210Amay be ordered such that science fiction movies 212 are listed first,followed by action movies 214.

Similarly, it may be known from the user 503's preferences and/orhistory 614 that the user 503 likes Actor A and Director B. Accordingly,the cast and crew results 210B may be ordered such that works of Actor A216 and Director B 218 are displayed before any others.

Also or alternatively, the categories 210 themselves may be ordered in amanner customized to the user 503 who initiated the search. For example,it may be known from the user 503's preferences and/or history 614 thatthe user 503: (1) watches TV shows and movies more than any other typeof content; (2) often watches movies with certain actors or by certaindirectors; and (3) frequently watches clips and trailers of movies.Accordingly, the categories 210 may be selected and displayed in theuser interface 702B so as to focus on the user 503's preferences, suchthat TV and movie results 210A, cast and crew results 210B, and clipsand trailers 210C are displayed at the top of user interface 702B.

FIG. 3 illustrates a flowchart of a method 302 for performing a textsearch of a single content source, according to some embodiments. Forillustrative purposes, method 302 shall be described with reference toFIGS. 1 and 5 .

In some embodiments, method 302 is performed while the user 503 is inthe app (application) of a partner content source 522B or 522C whileusing the media device 506. This partner content source 522B or 522C maybe said to represent the active partner content source 522B or 522Cand/or the current (or active) context. This is indicated by 304.

In 306, the user 503 may enter a text search 104 using an on-screenkeyboard 105 in GUI 702A, or the keypad 512 in remote control 510.

In 308, the active partner content source 522B or 522C may execute thetext search 104. In some embodiments, the search is performed over onlythe active partner content source 522B or 522C's content 524B or 524C.

In 310, the search results may be displayed. In some embodiments, thesearch results contain only the active partner content source 522B or522C's content 524B or 524C from the search conducted in 308. The searchresults 106 may be displayed in a list, as shown in the example of FIG.1 .

FIG. 4 illustrates a flowchart of a method 402 for performing a voicesearch of multiple content sources, according to some embodiments.Method 402 can be performed by processing logic that can comprisehardware (e.g., circuitry, dedicated logic, programmable logic,microcode, etc.), software (e.g., instructions executing on a processingdevice), or a combination thereof. It is to be appreciated that not allsteps may be needed to perform the disclosure provided herein. Further,some of the steps may be performed simultaneously, or in a differentorder than shown in FIG. 4 , as will be understood by a person ofordinary skill in the art. Method 402 shall be described with referenceto FIGS. 2 and 5 . However, method 402 is not limited to those exampleembodiments.

In some embodiments, method 402 is performed while the user 503 is inthe app of a partner content source 522B or 522C while using the mediadevice 506. This is indicated by 404.

In 406, the user 503 speaks the parameters of a voice search, like “Findmovies with Harrison Ford.”

In 408, the principal content source 522A may search its content 524Aaccording to the voice search parameters.

In 410, the active partner content source 522B or 522C as well as otherpartner content sources 522B, 522C may search their respective contents524B, 524C according to the voice search parameters.

In 412, the search results from 408 and 410 may be displayed. The searchresults may be ordered and displayed in categories 210 in a GUI 702B asshown in FIG. 2 .

As should be apparent to persons skilled in the relevant art(s), method402 of FIG. 4 is an improvement over method 302 of FIG. 3 . For example,method 402 is directed to a voice search over multiple content sources522. In particular, the search is performed over content 524A of theprincipal content source 522A, content 524B or 524C of the activepartner content source 522B or 522C, and content 524B, 524C of one ormore other partner content sources 522B, 522C. Also, the search resultsare not displayed in a list (such as that shown in FIG. 1 ), but areinstead displayed in categories 210 where the categories 210 are ordered(both within and among the categories 210), as described above withrespect to FIG. 2 . These and other advantages of method 402 shallbecome more apparent from discussion of FIG. 10 .

FIG. 10 illustrates a flowchart of a method 1002 for performing a voicesearch of multiple content sources. Method 1002 may be considered a moredetailed version of method 402 of FIG. 10 . Method 1002 can be performedby processing logic that can comprise hardware (e.g., circuitry,dedicated logic, programmable logic, microcode, etc.), software (e.g.,instructions executing on a processing device), or a combinationthereof. It is to be appreciated that not all steps may be needed toperform the disclosure provided herein. Further, some of the steps maybe performed simultaneously, or in a different order than shown in FIG.10 , as will be understood by a person of ordinary skill in the art.Method 1002 shall be described with reference to FIGS. 5, 6, 8 and 9 .However, method 1002 is not limited to those example embodiments.

In some embodiments, method 1002 is performed while the user 503 is inthe app of a partner content source 522B or 522C (herein called theactive partner content source 522B or 522C) while using the media device506. This is indicated by 1003.

Throughout method 1002, the media device 506 may represent and beassociated with the principal content source 522A.

In 1004, the media device 506 may receive a search query from user 503.The search query may be a text search that the user 503 entered usingthe keypad 512 of remote control 510, or an on-screen keypad of a GUI(such as that shown in FIGS. 1 and 2 ). The remote control 510 maytransmit the text entered by the user 503 to the media device 506 viaany well-known means (such as via an infrared connection, for example).

Alternatively, the search may be a voice search. In this latter case,the user 503 may indicate a desire to provide a voice search by pressingthe voice button 516 of the remote control 510. Upon detecting that thevoice button 516 has been pressed, the remote control 510 may listen foraudible voice input from the user 503 by using the microphone 514. Theremote control 510 may transmit the voice data received via themicrophone 514 to the media device 506 via any well-known means (such asvia an infrared connection, for example).

As indicated by 1006, if the user 503 provided a voice search in 1004,then 1014 is performed. Otherwise, 1008 is performed.

Consider first the case where the user 503 did not provide a voicesearch in 1004. That is, the user 503 provided a text search in 1004. Inthat case, in 1008, the media device 506 may transmit the text search tothe active partner content source 522B or 522C via the network 518.

In 1010, the active partner content source 522B or 522C may execute thetext search over its content 524B or 524C. It is noted that, in someembodiments, only the content 524B or 524C of the active partner contentsource 522B or 522C is searched in 1010.

In 1012, the active partner content source 522B or 522C may transmit thesearch results from 1010 to the media device 506. The media device 506may cause the search results to be displayed on the display device 508.Example GUIs 702A or 702B in FIGS. 1 and 2 may be used to display thesearch results. In some embodiments, the search results are displayedwhile the user 503 remains in the app of the active partner contentsource 522B or 522C. That is, there is no context change when the searchis performed (in 1010) and the search results are displayed (in 1012).

Referring back to 1006, if the user 503 provided a voice search in 1004,then 1014 is performed.

In 1014, the ASR module 610 in the media device 506 may performautomatic voice recognition of the voice data received in 1004, in orderto recognize and convert the voice search to a textual search query andparameters. As noted above, throughout method 1002, the media device 506may represent and be associated with the principal content source 522A.The ASR module 610 may use any well-known ASR hardware, part, apparatus,method, approach, and/or technology to perform this function.

As part of 1014, the ASR module 610 may analyze the voice search todetermine the intent of the user 503, using the user 503's preferencesand history 614. For example, if the user 503's preferences and history614 indicate that the user 503 often watches movie trailers but rarelywatches TV show trailers, then if the voice search was “find trailerswith Tom Hanks,” the query & retrieval module 608 (working with the ASRmodule 610) may conclude that the user 503's intent was to find trailersof movies with Tom Hanks, rather than trailers of TV shows with TomHanks.

In 1016, the media device 506 may transmit the converted voice search(that has been converted to a textual search query) to the activepartner content source 522B or 522C via the network 518.

In 1018, the active partner content source 522B or 522C may execute thevoice search over its content 524B or 524C. The active partner contentsource 522B or 522C may transmit its search results to the media device506 via the network 518.

In 1020, the media device 506 may receive the search results from theactive partner content source 522B or 522C.

In 1022, the media device 506 may transmit the converted voice search toother partner content sources 522B, 522C. These other partner contentsources 522B, 522C may execute the voice search over their respectivecontents 524B, 524C, and may transmit their search results to the mediadevice 506 via the network 518.

In 1024, the media device 506 may execute the converted voice searchover its own content. That is, the media device 506 may transmit theconverted voice search to the principal content source 522A via thenetwork 518. The principal content source 522A may perform the voicesearch over its content 524A, and then transmit the search results tothe media device 506 over the network 518.

In 1026, the query & retrieval module 608 of the media device 506 maycategorize and rank the search results from the principal and partnercontent sources 522 (that is, from steps 1018, 1022 and 1024) in amanner customized to the user 503 who initiated the voice search in1004. For example, the query & retrieval module 608 may selectcategories based on the user 503's preferences and viewing history 614.For example, the query & retrieval module 608 may select “live actionsports” and “news” as categories if the user 503's preferences andviewing history 614 indicates he regularly watches such content.

The query & retrieval module 608 may also generate new categories basedon the user 503's preferences and viewing history 614. For example,suppose the user 503 has recently watched news about Brexit from sourcesoutside the UK. In this case, the query & retrieval module 608 maygenerate a “non-UK Brexit news” category specifically for the user 503.

Also in 1026, the query & retrieval module 608 may order the items ineach category according to the user 503's preferences and viewinghistory 614, as described above.

In some embodiments, in 1026, the query & retrieval module 608 maycategorize and order the search results from the active partner contentsource 522B or 522C separate from the search results from the principalcontent source 522A and the other non-active partner content sources522B, 522. In this way, the media device 506 can display thesecategories separately in the display device 508; this is furtherdescribed below.

In 1028, the media device 506 may display the search results in thecategories of 1026, in a manner customized to the user 503 who initiatedthe voice search in 1004. The search results may be displayed in GUIs702 on the display device 508. FIGS. 8 and 9 illustrate example GUIs 702that may be used in 1028.

FIG. 8 illustrates a GUI 702C wherein the active app 802 (that is, theapp corresponding to the active partner content source 522B or 522C) maybe displayed. Search results 805 may be displayed over the active app802, and while this is done, the active app 802 may be dimmed (asindicated by 804).

The search results 805 may include one or more rows 808 of the searchresults returned by the active partner content source in 1020. Each row808 may represent a category, and the categories may be ordered (bothwithin and among the categories) in a manner customized to the user 503,as described herein. The names of the categories may be displayed as820.

If the user 503 wishes to see more search results of the active partnercontent source 522B or 522C, then the user 503 can select or scroll passtile 812. If this occurs, then the voice search is transmitted to theactive partner content source 522B or 522C to perform additionalsearching of its content 524B or 524C (similar to the operation of1016-1020).

If the user 503 wishes to see search results of other content sources522, then the user can press a down icon 814, or scroll down. Upontaking this action, a GUI 702D shown in FIG. 9 may be displayed.

In GUI 702D, the active app 802 may still be displayed, but dimmed (asagain indicated by 804). Search results 914 may be displayed over theactive app 802. The search results 914 may be displayed in rows 908,with each row 908 corresponding to a category from step 1026. Some ofthe rows 908 may correspond to search results of the principal contentsource 522A, and others may correspond to search results of non-activepartner content sources 522B, 522C, where the rows 908 (that is,categories) may be ordered (both within and among the categories) in amanner customized to the user 503, as described herein. The names of thecategories may be displayed as 910. More search results can be obtainedby selecting or scrolling pass the tiles 912.

As will be apparent to persons skilled in the relevant art(s), method1002 is an improvement over prior approaches because voice searches canbe executed over multiple content sources 522. The automatic speechrecognition (ASR) function is centralized with and performed by theprincipal content source 522A (that is, the media device 506 associatedwith the principal content source 522A); thus, the partner contentsources 522B, 522C are not required to develop or implement their ownASR solutions, thereby saving on computing resources, and enabling theprocessing of voice searches to be consistent across content sources522. Also, because the principal content source 522A controls the ASRprocess, the principal content source 522A has access to all the voiceinput from users 503. The principal content source 522A can process andstore such voice input to enhance the user preferences and history 614and for other processing and advantages, as indicated by 1030.

Method 1002 is further improved over prior approaches because it doesnot change contexts when performing searches over multiple contentsources 522. Instead, the voice search processing of steps 1014-1030 areperformed by the media device 506 while remaining in the context of theactive partner content source 522B or 522C (that is, the active app802). Accordingly, method 1002 does not require disruptive contextswitches for its processing.

Example Computer System

Various embodiments and/or components therein can be implemented, forexample, using one or more computer systems, such as computer system1100 shown in FIG. 11 . Computer system 1100 can be any computer orcomputing device capable of performing the functions described herein.For example, one or more computer systems 1100 or portions thereof canbe used to implement any embodiments of FIGS. 1-10 , and/or anycombination or sub-combination thereof.

Computer system 1100 includes one or more processors (also calledcentral processing units, or CPUs), such as a processor 1104. Processor1104 is connected to a communication infrastructure or bus 1106.

One or more processors 1104 can each be a graphics processing unit(GPU). In some embodiments, a GPU is a processor that is a specializedelectronic circuit designed to process mathematically intensiveapplications. The GPU can have a parallel structure that is efficientfor parallel processing of large blocks of data, such as mathematicallyintensive data common to computer graphics applications, images, videos,etc.

Computer system 1100 also includes user input/output device(s) 1103,such as monitors, keyboards, pointing devices, etc., that communicatewith communication infrastructure 1106 through user input/outputinterface(s) 1102.

Computer system 1100 also includes a main or primary memory 1108, suchas random access memory (RAM). Main memory 1108 can include one or morelevels of cache. Main memory 1108 has stored therein control logic(i.e., computer software) and/or data.

Computer system 1100 can also include one or more secondary storagedevices or memory 1110. Secondary memory 1110 can include, for example,a hard disk drive 1112 and/or a removable storage device or drive 1114.Removable storage drive 1114 can be a floppy disk drive, a magnetic tapedrive, a compact disk drive, an optical storage device, tape backupdevice, and/or any other storage device/drive.

Removable storage drive 1114 can interact with a removable storage unit1118. Removable storage unit 1118 includes a computer usable or readablestorage device having stored thereon computer software (control logic)and/or data. Removable storage unit 1118 can be a floppy disk, magnetictape, compact disk, DVD, optical storage disk, and/any other computerdata storage device. Removable storage drive 1114 reads from and/orwrites to removable storage unit 1118 in a well-known manner.

According to an exemplary embodiment, secondary memory 1110 can includeother means, instrumentalities or other approaches for allowing computerprograms and/or other instructions and/or data to be accessed bycomputer system 1100. Such means, instrumentalities or other approachescan include, for example, a removable storage unit 1122 and an interface1120. Examples of the removable storage unit 1122 and the interface 1120can include a program cartridge and cartridge interface (such as thatfound in video game devices), a removable memory chip (such as an EPROMor PROM) and associated socket, a memory stick and USB port, a memorycard and associated memory card slot, and/or any other removable storageunit and associated interface.

Computer system 1100 can further include a communication or networkinterface 1124. Communication interface 1124 enables computer system1100 to communicate and interact with any combination of remote devices,remote networks, remote entities, etc. (individually and collectivelyreferenced by reference number 1128). For example, communicationinterface 1124 can allow computer system 1100 to communicate with remotedevices 1128 over communications path 1126, which can be wired and/orwireless, and which can include any combination of LANs, WANs, theInternet, etc. Control logic and/or data can be transmitted to and fromcomputer system 1100 via communication path 1126.

In some embodiments, a non-transitory, tangible apparatus or article ofmanufacture comprising a tangible computer useable or readable mediumhaving control logic (software) stored thereon is also referred toherein as a computer program product or program storage device. Thisincludes, but is not limited to, computer system 1100, main memory 1108,secondary memory 1110, and removable storage units 1118 and 1122, aswell as tangible articles of manufacture embodying any combination ofthe foregoing. Such control logic, when executed by one or more dataprocessing devices (such as computer system 1100), causes such dataprocessing devices to operate as described herein.

Based on the teachings contained in this disclosure, it will be apparentto persons skilled in the relevant art(s) how to make and useembodiments of this disclosure using data processing devices, computersystems and/or computer architectures other than that shown in FIG. 11 .In particular, embodiments can operate with software, hardware, and/oroperating system implementations other than those described herein.

CONCLUSION

It is to be appreciated that the Detailed Description section, and notthe Summary and Abstract sections, is intended to be used to interpretthe claims. The Summary and Abstract sections can set forth one or morebut not all exemplary embodiments as contemplated by the inventors, andthus, are not intended to limit this disclosure or the appended claimsin any way.

While this disclosure describes exemplary embodiments for exemplaryfields and applications, it should be understood that the disclosure isnot limited thereto. Other embodiments and modifications thereto arepossible, and are within the scope and spirit of this disclosure. Forexample, and without limiting the generality of this paragraph,embodiments are not limited to the software, hardware, firmware, and/orentities illustrated in the figures and/or described herein. Further,embodiments (whether or not explicitly described herein) havesignificant utility to fields and applications beyond the examplesdescribed herein.

Embodiments have been described herein with the aid of functionalbuilding blocks illustrating the implementation of specified functionsand relationships thereof. The boundaries of these functional buildingblocks have been arbitrarily defined herein for the convenience of thedescription. Alternate boundaries can be defined as long as thespecified functions and relationships (or equivalents thereof) areappropriately performed. Also, alternative embodiments can performfunctional blocks, steps, operations, methods, etc. using orderingsdifferent than those described herein.

References herein to “one embodiment,” “an embodiment,” “an exampleembodiment,” or similar phrases, indicate that the embodiment describedcan include a particular feature, structure, or characteristic, butevery embodiment can not necessarily include the particular feature,structure, or characteristic. Moreover, such phrases are not necessarilyreferring to the same embodiment. Further, when a particular feature,structure, or characteristic is described in connection with anembodiment, it would be within the knowledge of persons skilled in therelevant art(s) to incorporate such feature, structure, orcharacteristic into other embodiments whether or not explicitlymentioned or described herein. Additionally, some embodiments can bedescribed using the expression “coupled” and “connected” along withtheir derivatives. These terms are not necessarily intended as synonymsfor each other. For example, some embodiments can be described using theterms “connected” and/or “coupled” to indicate that two or more elementsare in direct physical or electrical contact with each other. The term“coupled,” however, can also mean that two or more elements are not indirect contact with each other, but yet still co-operate or interactwith each other.

The breadth and scope of this disclosure should not be limited by any ofthe above-described exemplary embodiments, but should be defined only inaccordance with the following claims and their equivalents.

What is claimed is:
 1. A method, comprising: receiving inputcorresponding to a search from a user; retrieving a content historyindicating which content was previously viewed by the user; determiningthat the content of the content history is organized, at least in part,into one or more preconfigured categories of content that areindependent of the content history of the user; generating a newcategory of content based on the content history for the user; arrangingcontent of the content history for the user based on both the newcategory of content that was generated based on the content history ofthe user and at least a subset of the one or more preconfiguredcategories of content that are independent of the content history of theuser; and displaying the arranged content in a manner customized to theuser, based on both the subset of one or more preconfigured categoriesthat are independent of the content history of the user and the newcategory generated based on the content history of the user, on a devicethat was used to consume at least a portion of the content.
 2. Themethod of claim 1, wherein the new category is different from the one ormore preconfigured categories of content that are independent of thecontent history.
 3. The method of claim 1, wherein the content historycomprises media that was downloaded from a server.
 4. The method ofclaim 1, wherein the content history comprises audio content, videocontent, and multimedia content.
 5. The method of claim 1, wherein thecontent history is limited to an active application on a media device,wherein the media device is configured to receive content from theactive application and one or more other non-active applications.
 6. Themethod of claim 5, further comprising: receiving a request to search acontent history for a non-active application; and displaying searchresults corresponding to the content history for the non-activeapplication.
 7. The method of claim 1, wherein the categories areordered in a manner customized to the user based on the content history.8. A system, comprising: a memory; and at least one processor coupled tothe memory and configured to perform operations comprising: receivinginput corresponding to a search from a user; retrieving a contenthistory indicating which content was previously viewed by the user;determining that the content of the content history is organized, atleast in part, into one or more preconfigured categories of content thatare independent of the content history of the user; generating a newcategory of content based on the content history for the user; arrangingcontent of the content history for the user based on both the newcategory of content that was generated based on the content history ofthe user and at least a subset of the one or more preconfiguredcategories of content that are independent of the content history of theuser; and displaying the arranged content in a manner customized to theuser, based on both the subset of one or more preconfigured categoriesthat are independent of the content history of the user and the newcategory generated based on the content history of the user, on a devicethat was used to consume at least a portion of the content.
 9. Thesystem of claim 8, wherein the new category is different from the one ormore preconfigured categories of content that are independent of thecontent history.
 10. The system of claim 8, wherein the content historycomprises media that was downloaded from a server.
 11. The system ofclaim 8, wherein the content history comprises audio content, videocontent, and multimedia content.
 12. The system of claim 8, wherein thecontent history is limited to an active application on a media device,wherein the media device is configured to receive content from theactive application and one or more other non-active applications. 13.The system of claim 12, the operations further comprising: receiving arequest to search a content history for a non-active application; anddisplaying search results corresponding to the content history for thenon-active application.
 14. The system of claim 8, wherein thecategories are ordered in a manner customized to the user based on thecontent history.
 15. A non-transitory processor-readable medium havingone or more instructions operational on a client device which, whenexecuted by a processor, cause the client device to perform operationscomprising: receiving input corresponding to a search from a user;retrieving a content history indicating which content was previouslyviewed by the user; determining that the content of the content historyis organized, at least in part, into one or more preconfiguredcategories of content that are independent of the content history of theuser; generating a new category of content based on the content historyfor the user; arranging content of the content history for the userbased on both the new category of content that was generated based onthe content history of the user and at least a subset of the one or morepreconfigured categories of content that are independent of the contenthistory of the user; and displaying the arranged content in a mannercustomized to the user, based on both the subset of one or morepreconfigured categories that are independent of the content history ofthe user and the new category generated based on the content history ofthe user, on a device that was used to consume at least a portion of thecontent.
 16. The non-transitory processor-readable medium of claim 15,wherein the new category is different from the one or more preconfiguredcategories of content that are independent of the content history. 17.The non-transitory processor-readable medium of claim 15, wherein thecontent history comprises media that was downloaded from a server. 18.The non-transitory processor-readable medium of claim 15, wherein thecontent history comprises audio content, video content, and multimediacontent.
 19. The non-transitory processor-readable medium of claim 15,wherein the content history is limited to an active application on amedia device, wherein the media device is configured to receive contentfrom the active application and one or more other non-activeapplications.
 20. The non-transitory processor-readable medium of claim19, the operations further comprising: receiving a request to search acontent history for a non-active application; and displaying searchresults corresponding to the content history for the non-activeapplication.